1. Field of the Invention
The present invention relates to caching systems, for example proxy devices, configured for accelerating delivery of content supplied by a web server and requested by a user according to Hypertext Transport Protocol (HTTP).
2. Description of the Related Art
Networking communications technology is undergoing substantial changes in an effort to provide more efficient delivery of content such as web objects based on Hypertext Markup Language (HTML) tags or Extensible Markup Language (XML) tags. Such changes include deploying HTTP proxy caches configured for caching web objects retrieved from web pages.
Proxy cache devices have been used for caching of HTML or HTTP objects. In particular, such objects typically are transferred according to HTTP protocol, based on HTTP headers specifying whether the corresponding web object is cacheable. An HTTP proxy cache is a device that acts as a proxy on behalf of a client machine, for example a browser device operated by a user. The HTTP proxy cache, in response to receiving a request, determines whether the requested web content is cached within locally accessible storage devices; if the requested web content is not cached locally (i.e., a cache miss), the HTTP proxy cache fetches the requested web object from the web server specified by the client, stores the web object in local storage, and forwards a copy of the fetched web content to the client. In response to receiving a subsequent HTTP get request from a client device for the cached web object (i.e., a cache hit), the HTTP proxy cache fetches the web object from its local storage, and forwards the cached web object to the browser. Hence, the cached web content eliminates the necessity of accessing the web server, as long as the locally stored web content is considered fresh (i.e., not stale).
One problem encountered with existing proxy cache techniques is that the attempted acceleration of web content, as perceived by a user of a web browser, requires that a request for the web content to have been previously requested by a client device. Hence, a client device cannot enjoy any of the benefits of proxy caching if a prior client device has not previously requested the same web content.
One proposed solution from Fireclick, Inc., Los Altos, Calif., involves a commercially available product, known as BLUEFLAME™, utilizes predictive caching, in which an executable resource on the client device (e.g., a java applet), prefetches the content to the browser using a proprietary communications mechanism between the client and the web server. The BLUEFLAME™ technology also uses server side statistical analysis algorithms to accelerate content. Use of a java applet executable within a client browser to prefetch content, however, can substantially degrade performance of the client browser, especially if other java applets are concurrently executing to provide an application operation for the existing web page of the client browser.